home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d6 / glazer.arc / AMORTIZE.BAS next >
BASIC Source File  |  1988-10-07  |  2KB  |  57 lines

  1. 100 ' Amortize ("AMORTIZE")
  2. 110 CLS
  3. 120 COLOR 0,15 : PRINT "Amortize" : COLOR 15,0
  4. 130 PRINT
  5. 140 DEFDBL A-Z
  6. 150 DEFINT M-N
  7. 160 MONEYFMT$ = "$$##,###,###.##"
  8. 170 DEF FNR (V) = SGN (V) * INT (ABS (V) * 100 + .5) / 100
  9. 180 '    Let user enter amount, term, rate, starting date
  10. 190 INPUT "Loan amount: ", PNCPL
  11. 200 INPUT "Term in months: ", NMONTHS
  12. 210 INPUT "Annual interest rate (in percent): ", AR
  13. 220 PRINT "Enter date of first payment"
  14. 230 INPUT "  Month (1-12): ", MONTH
  15. 240 IF MONTH < 1 OR MONTH > 12  THEN PRINT "No such month" : GOTO 230
  16. 250 INPUT "  Year (1900-2100): ", YEAR
  17. 260 IF YEAR < 1900 OR YEAR > 2100  THEN PRINT "Year out of range" : GOTO 250
  18. 261 DIM TOTALPAYMENTS(600)
  19. 262 DIM TOTALINTEREST(600)
  20. 263 DIM PNCPL(600)
  21. 264 PNCPL(0) = PNCPL
  22. 270 '     Initialize variables
  23. 280 PR = AR / 1200   'Determine monthly interest rate
  24. 290 IF PR <> 0 THEN PMT = (PNCPL * PR) / (1 - (1 + PR) ^ -NMONTHS)                             ELSE PMT = PNCPL / NMONTHS
  25. 300 PMT = FNR (PMT)    'Monthly payment
  26. 310 PRINT : PRINT
  27. 320 PRINT "Monthly payment: "; USING MONEYFMT$; PMT
  28. 330 PRINT : PRINT
  29. 340 PRINT "Press space bar to see next month's results"
  30. 350 MONTHNUM = YEAR * 12 + MONTH
  31. 360 '      Calculate amortization table
  32. 370 FOR M = 1 TO NMONTHS
  33. 380   K$ = INKEY$ : IF K$ = ""  THEN GOTO 380
  34. 390   INTERESTDUE = FNR (PNCPL * PR)
  35. 400   TOTALINTEREST = FNR (TOTALINTEREST + INTERESTDUE)
  36. 410   PNCPL = FNR (PNCPL - PMT + INTERESTDUE)
  37. 420   YEAR = (MONTHNUM - 1) \ 12
  38. 430   MONTH = MONTHNUM - YEAR * 12
  39. 440   MONTHNUM = MONTHNUM + 1
  40. 450   PRINT:PRINT
  41. 460   PRINT "Payment number: "; M
  42. 470   PRINT "Date: "; MONTH; "/"; YEAR
  43. 480   PRINT
  44. 490   PRINT "Principal: "; TAB(20); USING MONEYFMT$; PNCPL
  45. 500   PRINT "Total interest: "; TAB(20); USING MONEYFMT$; TOTALINTEREST
  46. 510   PRINT "Interest due: "; TAB(20); USING MONEYFMT$; INTERESTDUE
  47. 512 TOTALPAYMENTS(M) = TOTALPAYMENTS(M-1) + PMT
  48. 513 TOTALINTEREST(M) = TOTALINTEREST
  49. 514 PNCPL(M) = PNCPL
  50. 515 IF M>12 THEN PREV = M-12  ELSE PREV = 0
  51. 516 PRINT "Totals for previous 12 months"
  52. 517 PRINT "Payments:"; TAB(20); USING MONEYFMT$;                                           TOTALPAYMENTS(M) - TOTALPAYMENTS(PREV)
  53. 518 PRINT "Interest paid:"; TAB(20); USING MONEYFMT$;                                     TOTALINTEREST(M)-TOTALINTEREST(PREV)
  54. 519 PRINT "Repayment": PRINT "  of principal:"; TAB(20); USING MONEYFMT$;                 PNCPL(PREV)-PNCPL(M)
  55. 520 NEXT M
  56. 530 END
  57.